Architecture en couches des réseaux


Sommaire:

Introduction
Modèle de référence OSI (Open Systems Interconnection)
Notions de couche, service, protocole et interface
Couche Physique
Couche Liaison de données
Couche Réseau
Couche Transport
Couche Session
Couche Présentation
Couche Application
Architecture du réseau Internet
Architectures propriétaires

Introduction

Interconnexion de réseaux

L'interconnexion de réseaux est un problème complexe car les réseaux sont souvent hétérogènes. Pour qu'un ordinateur puisse communiquer avec un autre, dont on connaît le nom, il faudra d'abord trouver son adresse.

Question:
  1. Quelle est l'adresse de votre ordinateur ?

Le coeur des réseaux longue distance est souvent constitué de routeurs fortement maillés, c-à-d interconnectés par des nombreux chemins différents; il faudra donc trouver le meilleur chemin.

Question:
  1. Quels pourraient être les critères pour déterminer le "meilleur" chemin ? Réponse


Modèle de référence OSI (Open Systems Interconnection)

Les 7 couches du modèle OSI

Le modèle de référence OSI propose une décomposition du problème d'interconnexion des réseaux d'ordinateurs, en couches superposées à partir de la couche physique, c-à-d la couche qui met en oeuvre le logiciel de gestion de la porte de communication ou de la carte utilisées pour le raccordement au réseau, jusqu'a la couche application, c-à-d la couche qui met en oeuvre les  services nécessaires aux applications qui utilisent le réseau, comme, par exemple, les logiciels de courrier électronique ou de navigation sur l'Internet.

Ce modèle est devenu une norme internationale sous la double référence ISO 7498 et ITU-T X.200 Series et une norme française sous la référence AFNOR NF Z 70-001.


Notions de couche, service, protocole et interface

Services et protocoles

Les logiciels mis en oeuvre dans chaque couche d'un ordinateur résolvent une partie des problèmes de communication, en utilisant des protocole de communication, c-à-d des ensemble de règles, procédures et messages définis et standardisés, pour communiquer avec la couche homologue de l'ordinateur distant. 

Chaque couche offre des services à la couche de niveau supérieur. Cette méthode simplifie l'écriture des logiciels de la couche car ça lui permet de traiter une autre partie des problèmes de communication en s'appuyant sur les services fournis par la couche de niveau inférieur.

Il suffit de parcourir les sept couches du modèle de référence OSI pour s'en convaincre.


Couche Physique

Couche physique

La fonction principale de la couche physique est de matérialiser l'interface entre l'ordinateur et le réseau pour pouvoir émettre et recevoir des signaux de communication. Ces signaux peuvent être de nature électrique, électromagnétique (radio) ou optique. La définition de connecteurs, des câbles ou antennes font partie de cette couche. En général on considère que les cartes réseau, les modems et les concentrateurs (hubs) en font aussi partie.

Une autre fonction de cette couche est de sérialiser l'information, c-à-d transformer les octets en éléments binaires (bits) ou vice versa pour pouvoir émettre ou recevoir sur les canaux de communication. Cette transformation doit être effectué à un rythme qui est imposé par la vitesse (débit binaire) de l'interface.

Beaucoup d'autres fonctions peuvent être réalisées par cette couche; la détection de l'existence d'une communication en cours (Carrier Sense) ou d'une collision (Collision Detect) sur un réseau local Ethernet en sont deux exemples.

Questions
  1. Quels sont les débits binaires des modems ?
  2. Et ceux des cartes Ethernet ?


Couche Liaison de données

Couche liaison de données

La fonction de la couche liaison de données est l'envoi et la réception de messages, souvent appelés trames à ce niveau, à son proche, c-à-d à un ordinateur qui se trouve sur un lien direct (sans faire appel à des systèmes intermédiaires, les fameux routeurs). Ce lien direct peut être permanent comme dans le cas le plus simple des réseaux  locaux où les ordinateurs sont tous raccordés au même câble (ou au même concentrateur, qui peut être vue comme une prise multiple de réseau!)  ou bien peut avoir été créé au préalable, par exemple, par une commutation de circuit sur le réseau téléphonique en appelant un fournisseur d'accès à Internet. Dans ce dernier cas le lien direct est temporaire.

Cette couche peut aussi faire un contrôle d'erreurs de transmission, en utilisant, par exemple, dans le cas des trames Ethernet les derniers quatre octets de la trame appelés Frame Check Sequence (FCS).

Deux protocoles très utilisés à ce niveau sont:


Couche Réseau

Couche réseau

La fonction de la couche réseau est d'acheminer les messages, souvent appelés soit paquets, soit datagrammes, de proche en proche jusqu'à destination en fonction de leur adresse. Cette fonction est appelé le routage; elle fait typiquement appel à des ordinateurs spécialisés, appelés routeurs, qui sont des systèmes intermédiaires sur la route qui va de la source à la destination.

Question: 
  1. Quel est le chemin, c-à-d la liste des systèmes intermédiaires, entre votre ordinateur et le serveur de l'Education Nationale, www.education.gouv.fr ?

Pour réaliser l'interconnexion de tous les réseaux d'ordinateurs à travers le monde entier il faut que ce protocole soit unique. Aujourd'hui il s'agit bien du protocole Internet IP (Internet Protocol). Ce protocole est dans sa version 4, caractérisée par des adresses sur 32 bits. L'évolution de l'Internet requiert le passage à la version 6 (la version 5 a été définie, mais n'a pas été adoptée), qui est caractérisée par des adresses beaucoup plus longues, représentées sur 128 bits.

Questions
  1. Un espace d'adressage qui utilise des adresses représentées sur 32 bits permets de définir combien d'adresses différentes ?
  2. Et si les adresses sont représentées sur 128 bits ?


Couche Transport

Couche transport

Le rôle du service de transport est de transporter les messages de bout en bout, c-à-d de la source jusqu'à la destination, donc d'un bout à l'autre du réseau, sans se préoccuper du chemin à suivre car ce problème a déjà été traité par la couche inférieure de réseau.

Il y a plusieurs exemples de protocoles de transport. Dans le monde Internet les plus connus sont:

Le choix dépend du type d'application et des services demandés. 

Les applications de transfert de fichiers, de courrier électronique et de navigation sur le web requièrent des garanties de transmission sans erreurs et de retransmission en cas d'erreur. Dans le cas de messages longs, le fait de découper un message en paquets plus courts peut donner lieu à la remise des paquets à l'ordinateur de destination dans le désordre. Le protocole TCP s'occupe de résoudre ces problèmes, au prix d'une certaine complexité du protocole.

D'autres applications comme les requêtes aux annuaires éléctroniques ( pour obtenir la correspondance entre un nom d'ordinateur et son adresse) ou les applications de gestion de réseau préfèrent utiliser un protocole plus léger mais plus rapide car les messages sont typiquement très courts et en cas d'erreurs ou d'absence de réponse, ils peuvent être répétés sans problèmes. Le protocole UDP est typiquement utilisé dans ces cas.

D'autres applications encore comme la téléphonie et la vidéoconférence sur Internet ont des contraintes de temps réel.  La transmission de la voix et de la vidéo ne peuvent pas tolérer les variations de délais, appelées gigue, dans l'acheminement des paquets car les accélérations et ralentissements qui en résulteraient dans la restitution de la voix ou de l'images nuiraient gravement à la qualité de la transmission. Le protocole RTP, qui est utilisé en complément du protocole UDP, traite ces problèmes. 


Couche Session

Couche session

La fonction de la couche session est de négocier et de maintenir un contexte de communication  entre la source et la destination. En début de communication il s'agit de définir le mode de communication (half duplex ou full duplex) et les règles de la communication. En cas de problème de communication, par exemple d'interruption momentanée, les services de points de reprise devraient permettre de reprendre la conversation là ou elle avait été interrompue.

En pratique ces fonctions sont souvent intégrées directement dans les logiciels d'application qui utilisent des protocoles spécifiques adaptés à chaque application particulière.


Couche Présentation

Couche présentation

Le rôle de cette couche est d'aider les différentes applications à représenter les données de manière indépendante des plates-formes/systèmes d'exploitation (Macintosh/Mac OS, Intel/Windows, etc.). 

Il existe plusieurs standards pour représenter les données (caractères, chiffres, booléens, mais aussi des données plus complexes construites à partir de données simples, comme les dates, les énumérations (par exemple, lundi, mardi, etc.),  jusqu'aux données d'applications spécifiques comme une feuille de calcul, une présentation, un document incluant texte, tables et images).

Certaines applications se limitent à l'utilisation du standard ASCII pour représenter les caractères sans accents. D'autres applications peuvent utiliser le standard international ISO 8859 pour pouvoir représenter les caractères avec accents.

D'autres applications encore peuvent utiliser un véritable langage de description de données (simples et complexes) avec des règles de représentation des données pour le transfert entre applications en réseau. Le standard ISO ASN.1 est un exemple utilisé dans le cadre des application de gestion de réseau.

La couche de présentation pourrait aussi fournir des services de cryptage de l'information.

Mais encore une fois cette couche est souvent intégrée directement dans les logiciels d'application.


Couche Application

Couche application

Le rôle de la couche application est de fournir les services et les protocoles nécessaires aux applications qui souhaitent s'ouvrir sur le réseau. Il faut noter que les applications elles mêmes ne font pas partie de la couche application. 

Les exemples de protocoles que nous pouvons classer dans cette couche sont très nombreux car les applications sont nombreuses et ne cessent de se développer.

Les protocoles les plus connus sont HTTP, FTP et SMTP pour naviguer sur le web, transférer des fichiers ou envoyer des messages électroniques.

Le protocole RTP (Realtime Transport Protocol) dont nous avions parlé à-propos de la couche transport peut aussi être classé dans la couche application (voir architecture Internet).


Architecture du réseau Internet

Internet

L'architecture des applications Internet a tendance à mettre en oeuvre les fonctions des couches  session, présentation et application dans des protocoles qui intègrent les différentes fonctions en un seul protocole. 

Cette approche contredit en partie la notion de couches mais se justifie pour des raisons de performance et de pragmatisme. Le modèle ISO et ses couches servent de référence pour poser les problèmes, alors que au moment de l'implémentation  il est peut être plus simple et performant d'intégrer les fonctions nécessaires à une application dans un seul protocole.

Exemples Exemple transmission page HTML

Prenons l'exemple de transmission d'une page HTML d'un serveur Web à un navigateur.Exemple transmission page HTML (2)

Pour que le code HTML de la page puisse être transmis au navigateur qui en a fait la demande, l'application serveur Web fait appel au protocole HyperText Transfer Protocol qui ajoute ses propres informations destinées à son homologue, le protocole HTTP de l'ordinateur distant. Le logiciel de la couche application fait ensuite appel aux services de la couche transport pour obtenir un service de transmission fiable à destination de l'ordinateur distant. Le protocole TCP est choisi; celui-ci ajoute des informations à destination de son homologue. Les logiciels de la couche transport font appel aux services de la couche réseau pour acheminer les données. Le protocole IP est imposé par le réseau Internet. Les logiciels de la couche réseau n'ont plus qu'à choisir le lien et les moyens physiques pour envoyer les données. Le logiciels de la couche physique sérialisent les octets de la trame constituée du code HTML de la page à transmettre plus toutes les informations ajoutées par les différents protocoles utilisés. 

  Exemple réception page HTML

Les éléments binaires reçus par l'ordinateur de destination sont réassemblés en octets pour reconstituer la trame avant de la passer au logiciel de la couche sous-réseau qui utilise le protocole Ethernet pour vérifier si la trame est valide. Si oui la couche sous-réseau peut passer les données à la couche réseau qui utilise les informations du protocole IP pour vérifier la validité du paquet reçu et savoir à quel protocole de la couche supérieur il faut passer les données et ainsi de suite jusqu'au logiciel du navigateur. En cas de problème le logiciel de la couche qui a détecté le problème essaie d'en informer son homologue et éventuellement les logiciel de la couche supérieure.

Cette description est simple et sommaire. Pour plus de précisions il faut étudier en détail l'opération de chaque protocole.


Architectures propriétaires

Les réseau d'ordinateurs se sont développés à partir des années 1970s. Pendant vingt ans les architectures propres à chaque constructeur ont dominé le paysage des réseaux. Les plus importantes de ces architectures sont:

  1. SNA Systems Network Architecture de IBM
  2. DSA Distributed Systems Architecture de Bull
  3. DNA/DECNET DEC (Digital Equipment Corporation) Network Architecture

Dans le domaine des réseaux locaux d'entreprise l'architecture de Novell a dominé pendant une dizaine d'années.

Avec l'arrivée d'Internet en début des années 1990s (bien que sa conception remonte à l'année 1969 dans les laboratoires des universités américaines) toutes les architectures se sont ouvertes sur Internet soit en intégrant ses protocoles, soit en créant au moins des passerelles qui permettent aux données de passer d'un réseau qui utilise une architecture propriétaire aux réseaux qui utilisent l'architecture Internet.


auteur : Edoardo Berera - Miage Nice
EB date de dernière modification : 22 mai 2002